package eteam.aps.service;

import eteam.aps.common.helper.JsonPage;
import eteam.aps.model.entity.DataDictionary;
import eteam.aps.model.vo.DataDictionaryVo;

import java.util.Map;

/**
 * 数据字典增删改查相关接口
 * 
 * @author yiyikai
 */
public interface DataDictionaryService {

	/**
	 * 添加字典数据
	 * 
	 * @param dataDictionary 字典数据
	 * @return 受影响的行数
	 */
	int insert(DataDictionary dataDictionary) throws Exception;

	/**
	 * 物理删除--设置状态---作废
	 * 
	 */
	int delete(String fId);

	/**
	 * 修改---不修改 审核状态
	 * 
	 * @param dataDictionary 字典参数
	 */
	int update(DataDictionary dataDictionary) throws Exception;

	/**
	 * 分页查询字典数据
	 * 
	 * @param page     第几页 从1开始 必传
	 * @param pageSize 每页条数 必传
	 * @return
	 */
	JsonPage<DataDictionaryVo> selectAll(Map<String, Object> map, int page, int pageSize);

	/**
	 * 根据数据字典的类别查询是否有下属的字典记录---不包括 作废
	 * 
	 * @param fDdcId 字典的类别 的主键
	 * @return
	 */
	int selectCountByFDdcId(String fDdcId);

	/**
	 * 根据主键查询
	 * 
	 * @param fId 主键
	 * @return
	 */
	DataDictionaryVo selectById(String fId);

	/**
	 * 精确查询记录数
	 * 
	 * @param fDdCode 编码
	 * @return
	 */
	int selectCountByFDdCode(String fDdCode);

	/**
	 * 精确查询记录数
	 * 
	 * @param fDdName 名称
	 * @return
	 */
	int selectCountByFDdName(String fDdName);

	/**
	 * 根据fId查询字典详情
	 * @param fId fId
	 * @return 字典详情
	 */
	DataDictionaryVo selectByfId(String fId);

	/**
	 * 根据fId查询字典状态
	 * @param fId fid
	 * @return 字典状态
	 */
	int selectFStateByFId(String fId);
}
